์ž‘์„ฑ: 2026-03-04 05:39:06์ˆ˜์ •: 2026-03-04 05:39:06

Nuxt ๋Œ€์‹œ๋ณด๋“œ ํ”„๋กœ์ ํŠธ ์‹œ๋ฆฌ์ฆˆ (1): ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐ ์„ค์ •

๋Œ€์‹œ๋ณด๋“œ ๊ฐœ๋ฐœ์˜ ์ฒซ๊ฑธ์Œ์€ ์•ˆ์ •์ ์ธ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Nuxt 3์™€ ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ๋ฅผ ์žก์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1. Nuxt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ƒˆ๋กœ์šด Nuxt ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

npx nuxi@latest init my-dashboard
cd my-dashboard
npm install

ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

npm run dev

2. ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ•์— ํ•„์š”ํ•œ Naive UI, UnoCSS, Pinia๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

npm install -D naive-ui unocss @unocss/nuxt
npm install pinia @pinia/nuxt

3. Nuxt ์„ค์ • ์—…๋ฐ์ดํŠธ (nuxt.config.ts)

์„ค์น˜ํ•œ ๋ชจ๋“ˆ๋“ค์„ Nuxt๊ฐ€ ์ธ์‹ํ•˜๋„๋ก ์„ค์ •์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

// nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    '@unocss/nuxt',
    '@pinia/nuxt',
  ],
  
  // Naive UI๋Š” SSR ์‹œ ์Šคํƒ€์ผ ์ฃผ์ž… ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค
  build: {
    transpile: ['naive-ui', 'vueuc', '@css-render/vue3-ssr']
  },
  
  vite: {
    optimizeDeps: {
      include: ['naive-ui', 'vueuc', 'date-fns-tz/formatInTimeZone']
    }
  }
})

4. ํด๋” ๊ตฌ์กฐ ์„ค๊ณ„

๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋กœ ํ™•์žฅ๋  ๊ฒƒ์„ ๋Œ€๋น„ํ•˜์—ฌ ๋ฏธ๋ฆฌ ํด๋” ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • components/: ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์กฐ๊ฐ๋“ค.
  • layouts/: ๋Œ€์‹œ๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ(์‚ฌ์ด๋“œ๋ฐ” ํฌํ•จ).
  • pages/: ์‹ค์ œ ์ฃผ์†Œ์™€ ๋งค์นญ๋˜๋Š” ํŽ˜์ด์ง€๋“ค.
  • stores/: Pinia ์ƒํƒœ ๊ด€๋ฆฌ ํŒŒ์ผ๋“ค.
  • plugins/: Naive UI ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •.

5. ๊ฒฐ๋ก 

์ด์ œ ๋Œ€์‹œ๋ณด๋“œ ์ œ์ž‘์„ ์œ„ํ•œ ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธ€์—์„œ๋Š” UnoCSS๋ฅผ ํ†ตํ•ด ์Šคํƒ€์ผ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ณ , Naive UI์˜ ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.